package com.Object;
/*
创建程序，在其中定义两个类：Account和AccountTest类体会Java的封装性
====该程序是某人在绑定银行卡时所填写的信息====
1.Account类要求具有属性：姓名（长度位2位3位或4位）、余额（必须>20）、密码（必须是六位数），
如果不满足，则给出提示信息，并给默认值
2.通过setXXX的方法给Account的属性赋值
3.再AccountTest中测试
 */

class Account{
    private String name;//姓名
    private double balance;//余额
    private String passWord;//密码
    public Account(){
        //初始化默认值
        setName("输入的名字有误，未查询到此人");
        setBalance(0);
        setPassWord("000000");

    }
    public Account(String name, double balance, String passWord) {
        setName(name);
        setBalance(balance);
        setPassWord(passWord);
    }
    //--------姓名效验---------
    public void setName(String name) {
        if (name.length() == 2 || name.length() == 3 || name.length() == 4) {
            this.name = name;
        } else {
            System.out.println("输入的名字有误，未查询到此人");
        }
    }
    public String getName(){
        return name;
    }
    //--------余额效验---------
    public void setBalance(double balance) {
        if (balance > 20) {
            this.balance = balance;
        } else {
            System.out.println("余额不足，默认值:0");
            this.balance = 0;
        }
    }
    public double getMoney(){
        return balance;
    }
    //--------密码效验---------
    public void setPassWord(String passWord) {
        if (passWord.length() == 6) {
            this.passWord = passWord;
        } else {
            System.out.println("输入密码有误，默认值:000000");
            this.passWord = "000000";//输出默认值
        }
    }
    public String getPassWord(){
        return passWord;
    }

//--------信息效验---------
public void showInfo(String inputPassword) {
    if (inputPassword.equals(this.passWord)) {
        System.out.println("账户信息：\n姓名：" + name + "\n余额：" + balance);
    } else {
        System.out.println("密码错误，无权查看信息！");
        }
    }
}





